from django.contrib import admin
from .models import Task, Category, Tag

@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
    """
    分类管理界面配置
    
    显示字段：
    - name: 分类名称
    - description: 分类描述
    - created_at: 创建时间
    - updated_at: 更新时间
    
    搜索功能：
    - 支持按名称搜索
    
    列表过滤：
    - 按创建时间过滤
    """
    list_display = ['name', 'description', 'created_at', 'updated_at']
    search_fields = ['name']
    list_filter = ['created_at']

@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
    """
    标签管理界面配置
    
    显示字段：
    - name: 标签名称
    - color: 标签颜色
    - created_at: 创建时间
    
    搜索功能：
    - 支持按名称搜索
    
    列表过滤：
    - 按创建时间过滤
    """
    list_display = ['name', 'color', 'created_at']
    search_fields = ['name']
    list_filter = ['created_at']

@admin.register(Task)
class TaskAdmin(admin.ModelAdmin):
    """
    任务管理界面配置
    
    显示字段：
    - title: 任务标题
    - description: 任务描述
    - due_date: 截止日期
    - priority: 优先级
    - status: 状态
    - category: 所属分类
    - created_by: 创建者
    - created_at: 创建时间
    - updated_at: 更新时间
    - completed_at: 完成时间
    
    搜索功能：
    - 支持按标题和描述搜索
    
    列表过滤：
    - 按优先级过滤
    - 按状态过滤
    - 按分类过滤
    - 按创建时间过滤
    - 按截止日期过滤
    
    编辑表单字段分组：
    - 基本信息：标题、描述、截止日期
    - 状态信息：优先级、状态
    - 分类信息：分类、标签
    - 时间信息：创建时间、更新时间、完成时间
    """
    list_display = [
        'title', 'description', 'due_date', 'priority', 'status',
        'category', 'created_by', 'created_at', 'updated_at', 'completed_at'
    ]
    search_fields = ['title', 'description']
    list_filter = [
        'priority', 'status', 'category', 'created_at', 'due_date'
    ]
    fieldsets = [
        ('基本信息', {
            'fields': ('title', 'description', 'due_date')
        }),
        ('状态信息', {
            'fields': ('priority', 'status')
        }),
        ('分类信息', {
            'fields': ('category', 'tags')
        }),
        ('时间信息', {
            'fields': ('created_at', 'updated_at', 'completed_at'),
            'classes': ('collapse',)
        })
    ]
    readonly_fields = ['created_at', 'updated_at', 'completed_at']
    filter_horizontal = ['tags']
